home *** CD-ROM | disk | FTP | other *** search
/ Deutsche Edition 1 / Deutsche Edition 1.iso / amok / amok_lha / amok18.lha / Profile / Demos / Prim3.mod < prev    next >
Text File  |  1993-08-15  |  558b  |  35 lines

  1. MODULE Prim3;
  2.  
  3. FROM InOut IMPORT WriteInt;
  4.  
  5. CONST n = 1000;
  6.  
  7. VAR i,f: INTEGER;
  8.     prims: ARRAY[2..n] OF BOOLEAN;
  9.     found: ARRAY[0..n] OF INTEGER;
  10.  
  11. PROCEDURE Mark(num: LONGINT; d: INTEGER);
  12. BEGIN
  13.   REPEAT
  14.     IF (d<f) AND (num*found[d+1]<=n) THEN
  15.       Mark(num,d+1)
  16.     ELSE
  17.       prims[num] := FALSE
  18.     END;
  19.     num := num * found[d];
  20.   UNTIL num>n;
  21. END Mark;
  22.  
  23. BEGIN
  24.   FOR i:=2 TO n DO prims[i] := TRUE END;
  25.   f := 0;
  26.   FOR i:=2 TO n DO
  27.     IF prims[i] THEN
  28.       found[f] := i; WriteInt(i,5);
  29.       Mark(i,0);
  30.       INC(f);
  31.     END;
  32.   END;
  33. END Prim3.
  34.  
  35.